iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
Software Development

Python之虛擬貨幣API實作系列 第 25

Day25 linebot & django 之實作交易機器人-查詢幣種

  • 分享至 

  • xImage
  •  

我們現在要結合之前所用到的部分,Day7 的查詢價格以及用Django當作我們的資料庫去儲存我們要的資料。


程式碼

這邊主要是為了配合樣板,使用者按下後會顯示近期查詢過的幣種,我們將資料儲存在Django。

第3行,用來找資料庫裡曾經查詢過的幣種,最後用list方式回傳給試用者。有興趣或者不知道django怎麼用的可以到文件看看。

第11行,因為linebot不只有一個使用者在用,所以在資料庫可能會有很多人的資料,為了區分將每筆資料都有對應的uid,才知道是哪個使用者查詢過這個幣種。

第12~17行,先去對使用者輸入的字串做查詢,如果有找到這個幣種,會去資料庫新增一筆瀏覽紀錄,但如果已經存在了就不會新增。

elif event.message.text == "近期瀏覽":
    response = list()
    coin_list = Crypto.objects.filter(uid=uid)
    for coin in coin_list:
        response.append(coin.coin_name)
    line_bot_api.reply_message(  # 回復傳入的訊息文字
        event.reply_token,
        TextSendMessage(text=str(response))
    )
else:
    user_input = event.message.text
    get_coin_data = client.get_symbol_ticker(symbol=user_input)
    if get_coin_data:
        response = get_coin_data
        coin_exist = Crypto.objects.filter(uid = uid, coin_name = user_input)
        if not coin_exist:
            Crypto.objects.create(uid = uid, coin_name = user_input)
    else:
        response = "請輸入正確的幣種名稱"
    line_bot_api.reply_message(  # 回復傳入的訊息文字
        event.reply_token,
        TextSendMessage(text=str(response))

執行結果

這邊我隨便輸入三個我想要查看的幣種名稱,如果有找到便會回傳名稱和當前價格。

這個時候來到http://127.0.0.1:8000/admin後台來查看已經新增的幣種,如果忘記後台要怎麼去可以參考Day22

再來就是呼叫樣板並點擊“近期瀏覽”,就可以看到下面的結果。
這邊我近期瀏覽的type是用message的方式,如果對這部分不了解的可以再去Day24看一下。


上一篇
Day24 實作樣板並呼叫
下一篇
Day26 linebot & 爬蟲 之實作交易機器人-相關新聞
系列文
Python之虛擬貨幣API實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言